﻿/*
 *  ChgDoc CMS - GNU General Public License, version 3 (GPL-3.0)
 *  Copyright (C)  2012. Ian Quigley
 *  
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *  
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 */

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ChgDoc.Entity;
using ChgDoc.Edit.PageRenderControls;
using SqliteORM;

namespace ChgDoc.Edit
{
	[AdminPage( "Table view", "Admin")]
	public partial class TableView : BasePage
	{
		protected void Page_Load( object sender, EventArgs e )
		{
			if (IsPostBack || string.IsNullOrEmpty( Param("table") ))
				return;

			TableMeta meta = null;
			using (AnonymousAdapter adapter = AnonymousAdapter.Open( Param( "table" ) ))
				if (adapter != null)
					meta = adapter.Meta;

			if (meta == null)
				return;


			foreach (var tc in meta.Columns)
				grdData.Columns.Add( new BoundColumn() { HeaderText =  tc.RawName });
			
			using (AnonymousAdapter adapter = AnonymousAdapter.Open( Param( "table" ) ))
			{
				grdData.DataSource = adapter.Select();
				grdData.DataBind();
			}



		}


		protected void grdData_DataBound(object sender, DataGridItemEventArgs e)
		{
			if (e.Item.ItemType == ListItemType.Header || e.Item.ItemType == ListItemType.Footer)
				return;

			for (int i = 0; i < e.Item.Cells.Count; i++)
				if (!string.IsNullOrEmpty( grdData.Columns[i].HeaderText ))
					e.Item.Cells[ i ].Text = ((AnonmousTable) e.Item.DataItem)[ grdData.Columns[ i ].HeaderText ].ToString();
		}
	}
}